local qiangji = fk.CreateSkill({
    name = "sj5__qiangji",
    tags = {Skill.Compulsory},
  })
  
  Fk:loadTranslationTable{
    ["sj5__qiangji"] = "强击",
    [":sj5__qiangji"] = "<b>锁定技</b>，攻击范围内最近的角色不能响应你的牌，你对攻击范围内最远的角色造成的伤害+1。",
  
   ["$sj5__qiangji1"] = "穿杨射柳，百发百中！",
   ["$sj5__qiangji2"] = "烈弓之下，片甲不存！",
  }

  qiangji:addEffect(fk.DamageCaused, {
    mute = true,
    can_trigger = function(self, event, target, player, data)
      if not (target == player and player:hasSkill(qiangji.name) and data.to ~= player) then
        return false
      end
      for i = player:getAttackRange(), 1, -1 do--从最远距离找到人为止，看看这个目标在不在其中
        local targets = table.filter(player.room:getOtherPlayers(player), function(p)
          return player:distanceTo(p) == i
        end)
        if #targets > 0 then
          return table.find(targets,function (t) return t == data.to end)
        end
      end
     end,
     on_use = function(self, event, target, player, data)
      data.damage = data.damage + 1
      player.room:doIndicate(player,{data.to})
      player.room:notifySkillInvoked(player,qiangji.name,nil,{data.to})
      player:broadcastSkillInvoke(qiangji.name,2)
    end,
  })

  qiangji:addEffect(fk.CardUsing, {
    mute = true,
    can_trigger = function(self, event, target, player, data)
      if not (target == player and player:hasSkill(qiangji.name) and (data.card.trueName == "slash" or data.card:isCommonTrick())) then
        return false
      end
      for i = 1, player:getAttackRange(), 1 do--从1开始找距离最近的角色列表
        local targets = table.filter(player.room:getOtherPlayers(player), function(p)
          return player:distanceTo(p) == i
        end)
        if #targets > 0 then
          event:setCostData(self,{targets = targets})
          return true
        end
      end
     end,
     on_use = function(self, event, target, player, data)
      local targets = event:getCostData(self).targets
      data.disresponsiveList = data.disresponsiveList or {}
      table.insertTableIfNeed(data.disresponsiveList,targets)
      player.room:notifySkillInvoked(player,qiangji.name,nil,targets)
      player:broadcastSkillInvoke(qiangji.name,1)
    end,
  })

  return qiangji